package net.ftlines.blog.cdidemo.jpa; import javax.enterprise.context.ApplicationScoped; import javax.enterprise.event.Event; import javax.enterprise.inject.Disposes; import javax.enterprise.inject.Produces; import javax.inject.Inject; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; public class EntityMangerFactoryProducer { @Inject Event<EntityManagerFactoryCreatedEvent> created; @Produces @ApplicationScoped public EntityManagerFactory create() { EntityManagerFactory emf = Persistence.createEntityManagerFactory("cdidemo"); created.fire(new EntityManagerFactoryCreatedEvent(emf)); return emf; } public void destroy(@Disposes EntityManagerFactory factory) { factory.close(); } }